java - 在java中打印正则表达式匹配
全部标签 正则表达式中的双方括号是什么意思?我对以下示例感到困惑:/[[^abc]]//[^abc]/我正在使用Rubular进行测试,但我没有看到双括号和单括号之间的任何区别。 最佳答案 Posixcharacterclasses使用[:alpha:]符号,它在正则表达式中使用,例如:/[[:alpha:][:digit:]]/您需要向下滚动以获取上面链接中的Posix信息。来自文档:POSIXbracketexpressionsarealsosimilartocharacterclasses.Theyprovideaportablealt
我想根据这个模式验证用户名:允许的字符:字母、数字、连字符、下划线第一个字符必须是字母或数字用户名不能全是数字这个正则表达式满足上面的1和2,但是我想不通如何满足3:/^[a-zA-Z\d][\w\-]+$/(我正在使用Ruby,如果相关的话) 最佳答案 不是很高效,但是很简单:/^(?!\d+$)[a-zA-Z\d][\w\-]+$/前瞻只是意味着:“后面不是一串数字,一直持续到最后”。 关于ruby-表示"atleastonenon-digit"的正则表达式,我们在StackOver
我认为这可能有效"abcdefghijk".each{|c|putcc;sleep0.25}我希望看到“abcdefj”一次打印一个字符,每个字符之间间隔0.25秒。但是整个字符串是一次打印出来的。 最佳答案 两件事:您需要使用.each_char来遍历字符。在Ruby1.8中,String.each将逐行进行。在Ruby1.9中,String.each已弃用。如果您希望字符立即出现,您应该手动刷新$stdout。否则,它们往往会被缓冲,以便字符在最后一次出现。.#!/usr/bin/envruby"abcddefghijk".ea
我的RubyonRails应用程序中有以下代码行,它检查给定的字符串是否包含韩文字符:isKorean=!/\p{Hangul}/.match(word).nil?它在控制台中完美运行,但会引发实际应用程序的语法错误:invalidcharacterpropertyname{Hangul}:/\p{Hangul}/我缺少什么以及如何让它发挥作用? 最佳答案 这是字符编码问题,需要补充:#encoding:utf-8到您正在使用该正则表达式的Ruby文件的顶部。如果您愿意,您可以使用您正在使用的字符类存在的任何编码而不是UTF-8。请
我试图理解为什么以下返回false:(**我应该放“输出0”**)puts"a\nb"=~Regexp.new(Regexp.escape("a\nb"),Regexp::MULTILINE|Regexp::EXTENDED)也许有人可以解释。我正在尝试从匹配字符串的多行字符串生成正则表达式。提前致谢 最佳答案 puts将始终返回nil。您的代码应该可以正常工作,尽管很长。=~返回匹配的位置,即0。您还可以使用:"a\nb"=~/a\sb/m或"a\nb"=~/a\nb/m注意:m选项在此示例中不是必需的,但演示了在没有Regexp
我已经编码了一段时间,但直到最近才需要正则表达式。我需要像Twitter一样做一个接受用户名的正则表达式。基本上,我想一次允许一个下划线。名称中可以有多个下划线,但不能是连续的字符。也允许使用字母数字字符。但是数字不能作为名字的开头。名称如_我的名字67我的名字67我的名字_my_67_name_有效但是94我的名字__我的名字我的名字我的名字无效。我玩过Rubular并想出几个正则表达式:/^[^0-9\s+](_?[a-z0-9]+_?)+$/i/^([a-z_?])+$/i我一直遇到的问题是这些匹配多个下划线。 最佳答案 已编
我有一段文本需要扫描,每行至少包含2部分信息,有时包含4部分信息。问题是每一行可能是15-20种不同操作中的一种。在ruby中,当前代码看起来像这样:text.split("\n").eachdo|line|#around20times................expressions['actions'].eachdo|pat,reg|#around20times.................这显然是“问题所在”。通过将所有正则表达式合并为一个,我确实设法使其更快(在C++中提高了50%),但这仍然不是我需要的速度——我需要快速解析数千个这些文件!现在我将它们与正则表达式
我有一个长时间运行的rake任务。我时不时地在屏幕上打印更新,让我知道任务已经完成了多长时间。puts"Almostthere..."我的问题是所有puts语句似乎都缓冲在某处,直到任务完成后才会打印到屏幕上。届时,它们将被一次性全部打印出来。有什么方法可以强制他们在任务运行时打印吗? 最佳答案 STDOUT.sync=true 关于ruby-on-rails-在rake任务中打印到屏幕,我们在StackOverflow上找到一个类似的问题: https://
我已经有很长时间没有使用ruby来做这样的事情了,但是,我忘记了如何打开文件、查找字符串以及打印ruby找到的内容。这是我所拥有的:#!/usr/bin/envrubyf=File.new("file.txt")text=f.readiftext=~/string/thenputstestend我想确定config/routes.rb中的“文档根目录”(路由)如果我打印字符串,它会打印文件。我不记得这是什么了,但我需要知道。希望我能让它打印出这个:#Routeis:blahblahblahblah 最佳答案 File.ope
如果附近没有其他文本block,我会尝试匹配一些文本。例如,如果"foo"不在它之前,我想匹配"bar"。我可以匹配"bar"如果"foo"没有立即在此正则表达式中使用负向后视:/(?但我也喜欢不匹配"foo12345bar"。我试过:/(?但使用通配符+范围似乎是Ruby中的无效正则表达式。我是不是想错了问题? 最佳答案 您的思考方式是正确的。但不幸的是,lookbehinds通常是固定长度的。唯一的主要异常(exception)是.NET的正则表达式引擎,它允许在lookbehind中使用重复量词。但是因为你只需要消极的回顾而不